--DIMM compras SERVICIOS = 1, INVENTARIO = 3
  SELECT a.proveedor_id,  a.valor_doc,
   case when (valor_doc >=1000)then '02' end formapago,
  --CONCAT('compra',rownum)Codigo_compra, 
  decode(length(rownum),1,CONCAT('compra00',rownum),
  decode(length(rownum),2,CONCAT('compra0',rownum),
  decode(length(rownum),3,CONCAT('compra',rownum),
  decode(length(rownum),4,CONCAT('compra',rownum)))))Codigo_compra1,
  decode(d.CREDTRIB_ID,1,'01',6,'06')codigo_Sustento,
  DECODE(LENGTH(B.RUC_CEDULA),13,'01',10,'02',8,'03')TipoiDproveedor, 
  B.RUC_CEDULA Nro_Identificacin_Proveedor, 
  DECODE(A.TIPODOC_ID,'FAC','01','NC','04') Codigo_Tipo_Comprobante,
  null Tipo_Proveedor,null Parte_Relacionada,to_char(a.fecha_con,'dd/mm/rrrr') Fecha_Registra,
   substr(a.seriedocxp ,1,3)Establecimiento,  substr(a.seriedocxp ,4,6)PuntodeEmision,a.NUMDOCXP Secuencial,
   to_char(A.FECHA_EMI,'dd/mm/rrrr')Fecha_Emision, b.N_AUTORIZACION Nro_AUTORIZACION, 
   0 Base_Imponibl_no_objeto_IVA,a.BASE_IVA_IGUAL_0 Base_IVA_imponible_0,a.BASE_IVA_MAYOR_0 Base_imponible_12, 
   0 Monto_ICE,a.valor_iva Monto_IVA,
  CUENTAS_X_PAGAR.obt_valRetencionPorTipo(A.EMPRESA_ID,A.PROVEEDOR_ID,A.TIPODOC_ID,A.NUMDOCXP,'I')RetencionIVAbienes30,
  CUENTAS_X_PAGAR.obt_valRetencionPorTipo(A.EMPRESA_ID,A.PROVEEDOR_ID,A.TIPODOC_ID,A.NUMDOCXP,'N')RetencionIVAservicios70,
  0 RetencionIVAservicios100,
  decode(E.PAIS_ID,'EC','01','02')Pagolocaloenexterior,'N/A' Pas_pago,'N/A' Aplica_tribut,'N/A'PagoNormaLegal,
  substr(E.SERIE_COMPRET,1,3)Establecimiento2,
  substr(E.SERIE_COMPRET,4,6)Puntodeemsin, a.retencion Secuencial,
  e.NOAUTO_COMPRET NmerodeAutorizacin2,to_char(A.FECHA_EMI,'dd/mm/rrrr') Fechaemisioncomprobante,
   decode(A.TIPODOC_ID_REF,'FAC','01','SI','01') CdigoTipodoc,
   substr(A.SERIEDOCXP_REF,1,3)Establecimiento,
   substr(A.SERIEDOCXP_REF,4,6)PuntodeEmision,
   A.NUMDOCXP_REF Secuencial2_nc,
   a.NO_AUTO_REF Autorizacion,
   null TIPO_RETEN, null BASE_APLICA, 0 numdocxp,
   null COnceptodeRetencion,
   0 BASERETTOTAL,
   null PorcentajeRetencion,0 MontoRetencion
     FROM CXP_TRANSACC A, CXP_PROVEEDORES B, cxp_coa D, g_empresa E
  WHERE A.EMPRESA_ID = B.EMPRESA_ID
    AND A.PROVEEDOR_ID = B.PROVEEDOR_ID
    and a.empresa_id = d.empresa_id
    and a.tipodoc_id = d.tipodoc_id
    and a.proveedor_id = d.proveedor_id
    and a.numdocxp = d.numdocxp
    and a.empresa_id = e.empresa_id
    AND A.ESTADO = 'C'
    AND TRUNC(A.FECHA_EMI) BETWEEN '01-ENE-13' AND '31-ENE-13'
    AND A.ESTADO <> 'A'
    AND A.ESTADO = 'C'
    AND A.TIPODOC_ID IN ('FAC','NC')
 union all
 --mismo select + RETENCIONES
  select distinct a.proveedor_id,  a.valor_doc,
   case when (valor_doc >=1000)then '02' end formapago,
  --CONCAT('compra',rownum)Codigo_compra, 
  decode(length(rownum),1,CONCAT('compra00',rownum),
  decode(length(rownum),2,CONCAT('compra0',rownum),
  decode(length(rownum),3,CONCAT('compra',rownum),
  decode(length(rownum),4,CONCAT('compra',rownum)))))Codigo_compra1,
  decode(d.CREDTRIB_ID,1,'01',6,'06')codigo_Sustento,
  DECODE(LENGTH(B.RUC_CEDULA),13,'01',10,'02',8,'03')TipoiDproveedor, 
  B.RUC_CEDULA Nro_Identificacin_Proveedor, 
  DECODE(A.TIPODOC_ID,'FAC','01','NC','04') Codigo_Tipo_Comprobante,
  null Tipo_Proveedor,null Parte_Relacionada,to_char(a.fecha_con,'dd/mm/rrrr') Fecha_Registra,
   substr(a.seriedocxp ,1,3)Establecimiento,  substr(a.seriedocxp ,4,6)PuntodeEmision,a.NUMDOCXP Secuencial,
   to_char(A.FECHA_EMI,'dd/mm/rrrr')Fecha_Emision, b.N_AUTORIZACION Nro_AUTORIZACION, 
   0 Base_Imponibl_no_objeto_IVA,a.BASE_IVA_IGUAL_0 Base_IVA_imponible_0,a.BASE_IVA_MAYOR_0 Base_imponible_12, 
   0 Monto_ICE,a.valor_iva Monto_IVA,
  CUENTAS_X_PAGAR.obt_valRetencionPorTipo(A.EMPRESA_ID,A.PROVEEDOR_ID,A.TIPODOC_ID,A.NUMDOCXP,'I')RetencionIVAbienes30,
  CUENTAS_X_PAGAR.obt_valRetencionPorTipo(A.EMPRESA_ID,A.PROVEEDOR_ID,A.TIPODOC_ID,A.NUMDOCXP,'N')RetencionIVAservicios70,
  0 RetencionIVAservicios100,
  decode(E.PAIS_ID,'EC','01','02')Pagolocaloenexterior,'N/A' Pas_pago,'N/A' Aplica_tribut,'N/A'PagoNormaLegal,
  substr(E.SERIE_COMPRET,1,3)Establecimiento2,
  substr(E.SERIE_COMPRET,4,6)Puntodeemsin, a.retencion Secuencial,
  e.NOAUTO_COMPRET NmerodeAutorizacin2,to_char(A.FECHA_EMI,'dd/mm/rrrr') Fechaemisioncomprobante,
   decode(A.TIPODOC_ID_REF,'FAC','01','SI','01') CdigoTipodoc,
   substr(A.SERIEDOCXP_REF,1,3)Establecimiento,
   substr(A.SERIEDOCXP_REF,4,6)PuntodeEmision,
   A.NUMDOCXP_REF Secuencial2_nc,
   a.NO_AUTO_REF Autorizacion,
   F.TIPO_RETEN,F.BASE_APLICA,a.numdocxp,
   c.retencion_id COnceptodeRetencion,
   nvl(BASE,0) + nvl(BASE_0,0) BASERETTOTAL,
   f.PORETEN PorcentajeRetencion,c.valor_let MontoRetencion
   FROM CXP_TRANSACC A, CXP_PROVEEDORES B,CXP_DETRANS c,cxp_coa D, g_empresa E, g_tiposreten F 
  WHERE A.EMPRESA_ID      = B.EMPRESA_ID
    AND A.PROVEEDOR_ID    = B.PROVEEDOR_ID
    AND A.EMPRESA_ID      = C.EMPRESA_ID(+)
    AND A.PROVEEDOR_ID    = C.PROVEEDOR_ID(+)
    AND A.TIPODOC_ID      = C.TIPODOC_ID(+)                                     
    AND A.NUMDOCXP        = C.NUMDOCXP(+)  
    and c.empresa_id      = f.empresa_id
    and c.retencion_id    = f.retencion_id
    and a.empresa_id      = d.empresa_id
    and a.tipodoc_id      = d.tipodoc_id
    and a.proveedor_id    = d.proveedor_id
    and a.numdocxp        = d.numdocxp
    and a.empresa_id      = e.empresa_id
    --AND A.ESTADO          = 'C'
    AND A.TIPODOC_ID      IN ('FAC','NC')
    AND TRUNC(A.FECHA_EMI) BETWEEN '01-ene-13' AND '31-ene-13'
    AND A.ESTADO          <> 'A'
    AND TIPOSERVTA_ID     IN ('1','3')
    AND A.ESTADO          = 'C'
    AND F.BASE_APLICA <> 'I'
  ORDER BY Codigo_compra1--,A.FECHA_EMI,A.NUMDOCXP,A.TIPODOC_ID